table of contents
IOCTL(2) | Руководство программиста Linux | IOCTL(2) |
ИМЯ¶
ioctl - управление устройствами
ОБЗОР¶
#include <sys/ioctl.h>
int ioctl(int d, int request, ...);
ОПИСАНИЕ¶
Функция ioctl манипулирует базовыми параметрами устройств, представленных в виде специальных файлов. В частности, многими оперативными характеристиками специальных символьных файлов (например терминалов) можно управлять через ioctl запросы. В качестве аргумента d должен быть указан открытый файловый дескриптор.
Второй аргумент является кодом запроса, который зависит от устройства. Третий аргумент является указателем на память, который не имеет типа. Традиционно это char *argp (до тех пор пока в C не появился void * ).
Ioctl запрос request кодирует в себе либо аргумент, который является параметром in либо аргумент, который является параметром out и кроме того размер аргумента argp в байтах. Макросы и определения, используемые в специальных ioctl запросах request находятся в файле <sys/ioctl.h>.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ¶
Обычно в случае успеха возвращается ноль. Некоторые ioctl используют возвращаемое значение как выходной параметр и возвращают в случае успеха неотрицательное значение. В случае ошибки возвращается -1 и значение errno устанавливается соответствующим образом.
ОШИБКИ¶
СООТВЕТСТВИЕ СТАНДАРТАМ¶
Нет единого стандарта. Аргументы, возвращаемые значения и семантики ioctl(2) варьируются в соответствии с драйвером устройства (вызов, используется как всеохватывающий, что не полностью соответствует потоковой модели ввода/вывода в Unix). Смотри ioctl_list(2) где дан список многих известных ioctl вызовов. Функция ioctl появилась в AT&T Unix версии 7.
СМОТРИ ТАКЖЕ¶
execve(2), fcntl(2), ioctl_list(2), mt(4), sd(4), tty(4)
ПЕРЕВОД¶
Перевёл с английского Виктор Вислобоков <corochoone@perm.ru> 2003
2000-09-21 | BSD Man Page |